[MTR04] W2 D2 位元運算和 JS 基礎:變數


Posted by Christy on 2020-06-18

我們不一樣:位元運算

位元運算的 and、or、xor 與 not

這是對二進位做的位元運算

  • and &: 位元運算;&& 是邏輯運算
  • or |: 位元運算;|| 邏輯運算
  • xor ^: inclusive or 不是 A 就是 B
    • 判斷方式:兩個東西一樣,就回傳零;不一樣,就回傳一
    • 這個符號 ^ 在 JS 裡面不是次方的意思
  • not ~: 變二進位以後,每個數字都反轉,一變零,零變一這樣
什麼時候可以用到?
  • 任一數字 and 1:
    若該數字最後一位為 0,則答案為 0
    若該數字最後一位為 1,則答案為 1
  • 可以拿來判斷奇偶數:
    x & 1 = 0,則 x 為偶數;x & 1 = 1,則 x 為奇數

放東西的箱子:變數

大聲告白:變數宣告與 undefined

變數 Variable:一個可以裝東西的箱子
var box = 123,這裡的等於是賦值的意思,就是給它一個數啦,把 123 給 box
在 JS 裡面,大小寫是有差別的喔

若是宣告一個變數,但是沒有賦予它值,就叫做 undefined
變數不可以用數字開頭取名,是不合法的(會被警察抓?)
變數名稱不可以取程式裡面已經有用到的代稱,例如 var var

可以這樣幫變數寶寶取名字:
camel case = ThisIsABox 駝峰式取名法
underscore = this_is_a_box
看你習慣哪一種,變數要好好取名字喔,最好從一開始就培養好這個觀念。如果你用 var a = 10,過一陣子你再回來看,就會忘記 a 是什麼了。(前天晚餐吃什麼都不記得了,當然不會記得 a 是什麼啊!)

安安,可以 ++ 嗎
  • 一個變數也可以做操作:
var a = 0
a = a + 5
等號是賦值
a = a + 5 也簡化可以寫成 a += 5
a = a - 5 也簡化可以寫成 a -= 5
好神奇啊!

a ++ 就是 a + 1
a -- 就是 a - 1

var a = 0
console.log(a++ && 30)
把 ++ 放在 a 後面的話
程式碼就會先跑 console.log(a && 30)
接著再執行 a += 1 (也就是 a++ 啦)
var a = 0
console.log(++a && 30)
把 ++ 放在 a 前面的話
程式碼就會先跑 a += 1 (也還是 a++ 啦)
接著再執行 console.log(a && 30)

結論:++ 放前面就會先執行,放後面就會後執行。

  • 其實很少會這樣用,會拆開兩行來寫,這樣比較清楚
console.log(a && 30)
a++
一樣米養百樣人:變數的各種型態

在 JS 裡面用 typeof 就可以知道型態是什麼

  1. Primitive:
    1. boolean: true, false
    2. number: 表示所有數字,不論小數或整數
    3. string: 用單引號或雙引號括起來的字串
typeof true boolean
typeof 10 number
typeof '10' string
  1. 另外三種:
    1. obnect
    2. undefined
    3. funcion
typeof [1] object: 對陣列做 typeof 會得到 object
typeof undefined undefined
typeof funcion funcion
typeof null object: 這裡比較特別,被認為是設計錯誤

今天強迫自己每看 25 分鐘的影片,就要休息 5 分鐘,方法是去窗邊唱一首歌。

意外看到助教以前的每日進度,感覺好有趣喔,有助教寫的笑話大集跟精美筆記可以看,原來 h0w 哥是真有其人,哈哈哈哈。

效率好低喔,昨天跟今天都是,進度都只有一點點,我想好好睡覺好了。










Related Posts

GoDaddy SSL 憑證購買及安裝在 Sails.js

GoDaddy SSL 憑證購買及安裝在 Sails.js

HTML 基礎

HTML 基礎

自駕車 Sensor Fusion in Visual Perception 簡介

自駕車 Sensor Fusion in Visual Perception 簡介


Comments